/**
* DefaultSelectModelTest - A JUnit Test
*
* Copyright (c) 2002
* Marty Phelan, All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.taursys.model.test;
import junit.framework.TestCase;
import com.taursys.model.*;
import java.util.*;
import java.math.BigDecimal;
/** JUnitTest case for class: com.taursys.model.DefaultSelectModel */
public class DefaultSelectModelTest extends TestCase {
TestAddressValueObject address;
VOCollectionValueHolder zipList;
VOValueHolder holder;
TestSelectModel model;
public static final TestAddressValueObject JUNEAU =
new TestAddressValueObject("Juneau", "AK", "99801");
public static final TestAddressValueObject DOUGLAS =
new TestAddressValueObject("Douglas", "AK", "99824");
public static final TestAddressValueObject AUKE_BAY =
new TestAddressValueObject("Auke Bay", "AK", "99827");
public static final TestAddressValueObject KETCHIKAN =
new TestAddressValueObject("Ketchikan", "AK", "99501");
public DefaultSelectModelTest(String _name) {
super(_name);
}
public class TestSelectModel extends DefaultSelectModel {
public boolean isCurrentMatch() throws ModelException {
return super.isCurrentMatch();
}
public boolean isValueNull() throws ModelException {
return super.isValueNull();
}
public void copyValues() throws ModelException {
super.copyValues();
}
public void setNullValues() throws ModelException {
super.setNullValues();
}
}
/* setUp method for test case */
protected void setUp() {
address = new TestAddressValueObject();
zipList = new VOCollectionValueHolder();
holder = new VOValueHolder();
model = new TestSelectModel();
// Setup picklist
ArrayList zips = new ArrayList();
zips.add(JUNEAU);
zips.add(DOUGLAS);
zips.add(AUKE_BAY);
zips.add(KETCHIKAN);
zipList.setCollection(zips);
// Setup valueHolder
holder.setValueObject(address);
// Setup model
model.setList(zipList);
model.setValueHolder(holder);
model.setDisplayPropertyName("zip");
model.setListPropertyNames(new String[]{"city","state","zip"});
model.setPropertyNames(new String[]{"city","state","zip"});
}
/* tearDown method for test case */
protected void tearDown() {
}
/** test for method getText(..) Valid value */
public void testGetDisplayOptionListNullAllowedThirdSelected() throws ModelException {
address.setCity("Douglas");
address.setState("AK");
address.setZip("99824");
Collection c = model.getDisplayOptionList();
Iterator iter = c.iterator();
SelectModelOption option = (SelectModelOption)iter.next();
assertEquals("1st item display value", "--none--", option.getOptionText());
assertEquals("1st item selected", false, option.isSelected());
option = (SelectModelOption)iter.next();
assertEquals("2nd item display value", JUNEAU.getZip(), option.getOptionText());
assertEquals("2nd item selected", false, option.isSelected());
option = (SelectModelOption)iter.next();
assertEquals("3rd item display value", DOUGLAS.getZip(), option.getOptionText());
assertEquals("3rd item selected", true, option.isSelected());
option = (SelectModelOption)iter.next();
assertEquals("4th item display value", AUKE_BAY.getZip(), option.getOptionText());
assertEquals("4th item selected", false, option.isSelected());
option = (SelectModelOption)iter.next();
assertEquals("5th item display value", KETCHIKAN.getZip(), option.getOptionText());
assertEquals("5th item selected", false, option.isSelected());
if (iter.hasNext())
fail("A 6th item is present in list - should only be 5 items");
}
/** test for method getText(..) Valid value */
public void testGetDisplayOptionListNullAllowedNullSelected() throws ModelException {
Collection c = model.getDisplayOptionList();
Iterator iter = c.iterator();
SelectModelOption option = (SelectModelOption)iter.next();
assertEquals("1st item display value", "--none--", option.getOptionText());
assertEquals("1st item selected", true, option.isSelected());
option = (SelectModelOption)iter.next();
assertEquals("2nd item display value", JUNEAU.getZip(), option.getOptionText());
assertEquals("2nd item selected", false, option.isSelected());
option = (SelectModelOption)iter.next();
assertEquals("3rd item display value", DOUGLAS.getZip(), option.getOptionText());
assertEquals("3rd item selected", false, option.isSelected());
option = (SelectModelOption)iter.next();
assertEquals("4th item display value", AUKE_BAY.getZip(), option.getOptionText());
assertEquals("4th item selected", false, option.isSelected());
option = (SelectModelOption)iter.next();
assertEquals("5th item display value", KETCHIKAN.getZip(), option.getOptionText());
assertEquals("5th item selected", false, option.isSelected());
if (iter.hasNext())
fail("A 6th item is present in list - should only be 5 items");
}
/** test for method getText(..) Valid value */
public void testGetDisplayOptionListNullNotAllowedThirdSelected() throws ModelException {
model.setNullAllowed(false);
address.setCity("Douglas");
address.setState("AK");
address.setZip("99824");
Collection c = model.getDisplayOptionList();
Iterator iter = c.iterator();
SelectModelOption option = (SelectModelOption)iter.next();
assertEquals("display value item 1", JUNEAU.getZip(), option.getOptionText());
assertEquals("selected item 1", false, option.isSelected());
option = (SelectModelOption)iter.next();
assertEquals("display value item 2", DOUGLAS.getZip(), option.getOptionText());
assertEquals("selected item 2", true, option.isSelected());
option = (SelectModelOption)iter.next();
assertEquals("display value item 3", AUKE_BAY.getZip(), option.getOptionText());
assertEquals("selected item 3", false, option.isSelected());
option = (SelectModelOption)iter.next();
assertEquals("display value item 4", KETCHIKAN.getZip(), option.getOptionText());
assertEquals("selected item 4", false, option.isSelected());
if (iter.hasNext())
fail("A 5th item is present in list - should only be 4 items");
}
/** test for method getText(..) Valid value */
public void testGetDisplayOptionListNullNotAllowedNullSelected() throws ModelException {
model.setNullAllowed(false);
Collection c = model.getDisplayOptionList();
Iterator iter = c.iterator();
SelectModelOption option = (SelectModelOption)iter.next();
assertEquals("display value item 1", JUNEAU.getZip(), option.getOptionText());
assertEquals("selected item 1", false, option.isSelected());
option = (SelectModelOption)iter.next();
assertEquals("display value item 2", DOUGLAS.getZip(), option.getOptionText());
assertEquals("selected item 2", false, option.isSelected());
option = (SelectModelOption)iter.next();
assertEquals("display value item 3", AUKE_BAY.getZip(), option.getOptionText());
assertEquals("selected item 3", false, option.isSelected());
option = (SelectModelOption)iter.next();
assertEquals("display value item 4", KETCHIKAN.getZip(), option.getOptionText());
assertEquals("selected item 4", false, option.isSelected());
if (iter.hasNext())
fail("A 5th item is present in list - should only be 4 items");
}
/** test for method getText(..) Valid value */
public void testGetTextValid() throws ModelException {
address.setCity("Douglas");
address.setState("AK");
address.setZip("99824");
assertEquals("Display zip","99824", model.getText());
}
/** test for method getText(..) Null value */
public void testGetTextNull() throws ModelException {
assertEquals("Display zip","--none--", model.getText());
}
/** test for method setText(..) Valid */
public void testSetTextValid() throws ModelException {
address.setCity("Juneau");
address.setState("AK");
address.setZip("99801");
// Change selection
model.setText("99501");
// Check that vo is set
assertEquals("City","Ketchikan",address.getCity());
assertEquals("State","AK",address.getState());
assertEquals("Zip","99501",address.getZip());
}
/** test for method setText(..) Invalid */
public void testSetTextInvalid() throws ModelException {
address.setCity("Juneau");
address.setState("AK");
address.setZip("99801");
try {
model.setText("99999");
fail("Expected a NotInListException");
} catch (NotInListException ex) {
}
}
/** test for method setText(..) Null */
public void testSetTextNullAllowedValueNull() throws ModelException {
address.setCity("Juneau");
address.setState("AK");
address.setZip("99801");
model.setText("--none--");
assertTrue("Expected null values",model.isValueNull());
}
/** test for method setText(..) Null */
public void testSetTextNullNotAllowedValueNull() throws ModelException {
address.setCity("Juneau");
address.setState("AK");
address.setZip("99801");
model.setNullAllowed(false);
try {
model.setText("--none--");
fail("Expected NotInListException");
} catch (NotInListException ex) {
}
}
/** test for method isMatch(..) True */
public void testIsMatchTrue() throws ModelException {
address.setCity("Juneau");
address.setState("AK");
address.setZip("99801");
// position list on Juneau
zipList.next();
assertTrue("Expected a match",model.isCurrentMatch());
}
/** test for method isMatch(..) False */
public void testIsMatchFalse() throws ModelException {
address.setCity("Juneau");
address.setState("AK");
address.setZip("99801");
// position list past Juneau
zipList.next();
zipList.next();
assertTrue("Expected NO match",!model.isCurrentMatch());
}
/**
* test for method isValueNull(..) Null value
*/
public void testIsValueNullTrue() throws ModelException {
assertTrue("Expected value true for null properties",model.isValueNull());
}
/**
* test for method isValueNull(..) Non Null value
*/
public void testIsValueNullFalse() throws ModelException {
address.setCity("Juneau");
address.setState("AK");
address.setZip("99801");
assertTrue("Expected value false for non-null properties",!model.isValueNull());
}
/** test for method copyValues(..) */
public void testCopyValues() throws ModelException {
address.setCity("Juneau");
address.setState("AK");
address.setZip("99801");
// Position over Ketchikan
zipList.next();
zipList.next();
zipList.next();
zipList.next();
// Make sure different
assertTrue("Expected NO match before copy",!model.isCurrentMatch());
model.copyValues();
assertTrue("Expected match after copy",model.isCurrentMatch());
}
/** test for method setNullValues(..) */
public void testSetNullValues() throws ModelException {
address.setCity("Juneau");
address.setState("AK");
address.setZip("99801");
model.setNullValues();
assertTrue("Expected null values",model.isValueNull());
}
/** test for method getOptionListArray(..) */
public void testObjectArrayListSetGetText() throws Exception {
model = new TestSelectModel();
model.setList(new ObjectArrayValueHolder(
new String[] {"Juneau","Douglas","Auke Bay","Ketchikan"}));
model.setText("Douglas");
assertEquals("Douglas", model.getText());
}
public void testGetSelectedItem() throws Exception {
model = new TestSelectModel();
model.setList(new ObjectArrayValueHolder(
new BigDecimal[] {
new BigDecimal(1),
new BigDecimal(2),
new BigDecimal(3),
new BigDecimal(4),
}));
model.setText("3");
assertEquals(new BigDecimal(3), model.getSelectedItem());
}
public void testSetSelectedItem() throws Exception {
model = new TestSelectModel();
model.setList(new ObjectArrayValueHolder(
new BigDecimal[] {
new BigDecimal(1),
new BigDecimal(2),
new BigDecimal(3),
new BigDecimal(4),
}));
model.setSelectedItem(new BigDecimal(3));
assertEquals(new BigDecimal(3), model.getSelectedItem());
}
/** Executes the test case */
public static void main(String[] argv) {
String[] testCaseList = {DefaultSelectModelTest.class.getName()};
junit.swingui.TestRunner.main(testCaseList);
}
}